package org.wutopia.labcloud.domain.uaa.service;

import com.nimbusds.jose.JOSEException;
import org.wutopia.labcloud.domain.uaa.controller.vo.input.AccountLoginInputVO;
import org.wutopia.labcloud.domain.uaa.controller.vo.input.AccountRegisterInputVO;
import org.wutopia.labcloud.domain.uaa.controller.vo.input.UserAccountEmailCodeInputVO;
import org.wutopia.labcloud.domain.uaa.controller.vo.input.UserAccountLoginByEmailInputVO;
import org.wutopia.labcloud.domain.uaa.controller.vo.output.AccountOutputVO;

public interface UserAccountService {

    AccountOutputVO registerAccount(AccountRegisterInputVO vo) throws JOSEException;

    AccountOutputVO loginAccount(AccountLoginInputVO vo) throws Exception;

    AccountOutputVO loginByEmail(UserAccountLoginByEmailInputVO vo) throws Exception;

    String getEmailCode(UserAccountEmailCodeInputVO vo);

    AccountOutputVO callback(String code) throws Exception;

}

